package version4.common.serializer.MySerializer;

import version4.common.serializer.MySerializer.impl.JDKSerializer;
import version4.common.serializer.MySerializer.impl.JSONSerializer;

public interface Serializer {
    //序列化,将对象转化为字节数组
    byte[] serialize(Object data);
    //反序列化，将字节数组转化为对象
    // messageType：消息类型，0-请求，1-响应
    Object deserialize(byte[] data,int messageType);

    // 序列化方式：0-JDK序列化，1-JSON序列化
    int getType();

    // 序列化器实现方式选择
    // 工厂方法
    static Serializer getSerializer(int type){
        switch (type){
            case 0:
                return new JDKSerializer();
            case 1:
                return new JSONSerializer();
            default:
                return null;
        }
    }
}
